// 浏览器前进后退功能
// 1. 面向对象模块化, 思想
// 一个文件就写一个类
// 2. 引入其他模块
const { StackBaseOnLinkedList, StackBasedLinkedList } = require('./StackBaseOnLinkedList')
//    console.log(StackBaseOnLinkedList); 
class Browser {
    constructor() {
        this.normalStack = new StackBasedLinkedList();
        this.backStack = new StackBasedLinkedList();
    }
    pushNormal(name) {
        this.normalStack.push(name); //浏览网页入栈
        this.backStack.clear(); // abc  b->d  c丢失
        this.dispalyAllStack();
    }
    dispalyAllStack() {
        console.log('---后退页面---');
        this.backStack.display();
        console.log('---浏览页面---');
        this.normalStack.display();
    }
    back() {
        // normalStack  pop
        // backStack    push
        // 边界
       const value = this.normalStack.pop();
       if (value !== -1) {
            // 可以
            this.backStack.push(value);
            this.dispalyAllStack();
       } else {
           // 不能点了
           console.log('无法后退');
       }
    }
    front() {
        // 边界
        const value = this.backStack.pop();
        if(value !==-1) {
            this.normalStack.push(value);
            this.dispalyAllStack();
        } else {
            console.log('无法前进');
        }
    }
}
 let browser = new Browser();
 browser.pushNormal('www.google.com');
 browser.pushNormal('www.baidu.com');
 browser.pushNormal('www.github.com');
 browser.back();
 browser.back();
 browser.front();
 browser.pushNormal('www.tmall.com')